package edu.hrbu.kwaidu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import edu.hrbu.kwaidu.model.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import edu.hrbu.kwaidu.model.vo.LoginVo;
import edu.hrbu.kwaidu.model.vo.RouterVo;
import edu.hrbu.kwaidu.model.vo.SysUserQueryVo;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author xudengyu
 * @since 2023-12-31
 */
public interface SysUserService extends IService<SysUser> {

    /*条件分页查询*/
    Page<SysUser> pageCondition(Integer page, Integer limit, SysUserQueryVo sysUserQueryVo);

    /*更改用户状态*/
    void updateStatus(Long id, Integer status);

    /*删除用户*/
    void del(Long id);

    /*批量删除用户*/
    void delBatch(ArrayList<Long> ids);

    /* 添加|修改 */
    void addOrEdit(SysUser sysUser);

    /*通过手机号获取用户信息*/
    SysUser getUserByPhone(String phone);

    /*通过主键获取基本信息*/
    SysUser getInfoById(Long id);

    /*登录*/
    HashMap<String, String> login(LoginVo loginVo);

    /*通过token获取用户信息*/
    HashMap<String, Object> getInfoByToken(String token);

    /*通过userId获取routerList[sidebar]*/
    List<RouterVo> getRouterListByUserId(Long userId);

    /*通过userId获取按钮列表*/
    List<String> getPermsListByUserId(Long userId);

    /*退出登录*/
    void logout(String token);

}
